#ifndef GITUTIL_H
#define GITUTIL_H

#include <QObject>

class GitUtil
{
public:
    GitUtil();

    /**
     * git remotes: 获取仓库的远程分支
     * #Fixme
     */
    static QStringList git_remotes(const QString &dir);

    /**
     * @brief 仓库状态：是否有变更
     * @param dir
     * @note git status --porcelain
     * @return
     */
    static bool git_status_porcelain(const QString &dir);

    /**
     * @brief 仓库重置
     * @param dir
     * @return
     */
    static void git_reset(const QString &dir, bool hard=false);

    /**
     * @brief 是 HEAD 分支
     * @param dir
     * @return
     */
    static bool is_head(const QString &dir);

private:
    static QString run(const QString &dir, const QString &commandline);
};

#endif // GITUTIL_H
